home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
05
/
4
/
DISK0543.ZIP
/
XYZ.BAS
< prev
next >
Wrap
BASIC Source File
|
1985-06-02
|
4KB
|
129 lines
10 CLS
20 REM
30 REM
40 REM
50 LOCATE 5,15
60 PRINT " ***** X,Y,Z COORDINATES (1950.0) OF THE SUN ***** "
70 LOCATE 7,30
80 PRINT " BY CHRIS SPRATT --- 1985"
90 PRINT
100 REM
110 KEY OFF : LOCATE 24,25
120 PRINT "PRESS ANY KEY TO CONTINUE"
130 IF INKEY$ = "" THEN 130
140 CLS
150 REM
160 PRINT: PRINT:
170 REM
180 GOSUB 730
190 REM PICK UP CONSTANTS
200 CLS
210 LOCATE 10,15
220 PRINT " STARTING DATE (BETWEEN A.D. 1700-2100):"
230 PRINT
240 INPUT " YEAR";Y
250 PRINT
260 INPUT " MONTH";M
270 PRINT
280 INPUT " DAY";D
290 GOSUB 620:DD = JD
300 JD = JD + 2440000#
310 ET = ((JD - 2444239#)/365.2421987#)*.0000119 + .00059
320 JD = JD + ET - 2440000#
330 PRINT :PRINT
340 INPUT " INCREMENT (DAYS)";NN
350 PRINT
360 INPUT " TOTAL SPAN (DAYS)";NS
370 REM
380 CLS
390 FOR JD = DD TO DD + NS STEP NN
400 GOSUB 820
410 NEXT JD
420 PRINT : PRINT : PRINT : PRINT :
430 PRINT TAB(20) : INPUT "MORE (Y OR N)";Q$: IF Q$ = "Y" THEN GOTO 200
440 END
450 REM
460 REM CALENDAR ROUTINE
470 REM
480 REM ENTER WITH JD = ADJUSTED JULIAN DATE OF INTEREST
490 REM (= TRUE JULIAN DATE - 2440000.0)
500 D7 = INT(JD+719019!)
510 IF JD<-24921 THEN D7=D7-1
520 Y7 = INT((D7-122.1)/365.25)
530 M7 = INT((D7-INT(365.25*Y7))/30.6001)
540 D6 = D7-INT(365.25*Y7)-INT(30.6001*M7)
550 M6 = M7-1
560 IF M7 > 13 THEN M6 = M6 - 12
570 Y6 = Y7
580 IF M6 <3 THEN Y6=Y6+1
590 M$ = MID$ (M1$,3*M6-2,3)
600 RETURN
610 REM
620 REM JULIAN DATE ROUTINE
630 REM
640 REM ENTER WITH D, M, Y OF INTEREST
650 IF M>=3 THEN 670
660 M = M+12:Y=Y-1
670 F = INT(Y/100)-INT(Y/400)
680 A = INT(365.25*(Y+4712))
690 B = INT((367*(M-1)+5)/12)
700 J = A+B-F-2440000.5#
710 JD= J+D
720 RETURN
730 REM CONSTANTS
740 REM
750 CLS
760 K = .01720209895#: REM GAUSSIAN CONSTANT
770 R1 = 3.1415926536#/180: REM RADIANS PER DEGREE
780 R0 = 1/R1
790 K8 = LOG(10)
800 E = 23.4457889# / R0
810 RETURN
820 REM
830 REM
840 REM
850 REM X, Y, Z FOR THE SUN -- 1950.0
860 REM
870 T = (JD+24980)/36525!: REM CENTURIES SINCE JAN 0, 1900, 12H UT
880 P0 = (1.396041+.000308*(T+.5))*(T-.499998)
890 A = 100:GOSUB 1240:G0 = A+358.475833#:L0 = A+279.6966778#-P0
900 A = 1336: GOSUB 1240:C0 = A+270.4341639#-P0
910 A = 162:GOSUB 1240:V0 = A+212.603219#
920 A = 53: GOSUB 1240:M0 = A+319.529425#
930 A = 8: GOSUB 1240:J0 = A+225.444651#
940 G = (G0+T*(-.95025-.00015*T))*R1
950 C = (C0+T*(307.883142#-.001133*T))*R1
960 L = (L0+T*(.76892+.000303*T))*R1
970 V = (V0+T*(197.803875#+.001286*T))*R1
980 M = (M0+T*(59.8585+.000181*T))*R1
990 JJ = (JO+T*154.906654#)*R1
1000 REM
1010 X = .000011*(COS(2*G-L-2*JJ)+COS(2*G+L-2*V))
1020 X = X-.000012*(COS(G+L-V)+COS(4*G-L-8*M+3*JJ)-COS(4*G+L-8*M+3*JJ))
1030 X = X-.000014*COS(C-2*L)+.000017*COS(C)+.000018*SIN(2*G+L-2*V)
1040 X = X-.000021*T*COS(G+L)-.000026*SIN(G-L-JJ)+.000035*COS(2*G-L)
1050 X = X+.000063*T*COS(G-L)+.000105*COS(2*G+L)+.008374*COS(G+L)
1060 X = X-.025127*COS(G-L)+.99986*COS(L)
1070 REM
1080 Y = .00001*(-SIN(2*G-L-2*JJ)+SIN(2*G+L-2*V))
1090 Y = Y+.000011*(-SIN(G+L-V)+SIN(4*G-L-8*M+3*JJ)+SIN(4*G+L-8*M+3*JJ))
1100 Y = Y+.000013*SIN(C-2*L)+.000016*SIN(C)-.000017*COS(2*G+L-2*V)
1110 Y = Y-.000019*T*SIN(G+L)-.000024*COS(G-L-JJ)-.000032*SIN(2*G-L)
1120 Y = Y-.000057*T*SIN(G-L)+9.699999E-05*SIN(2*G+L)+.007683*SIN(G+L)
1130 Y = Y+.023053*SIN(G-L)+.917308*SIN(L)
1140 REM
1150 Z = -.00001*COS(G-L-JJ)-.000014*SIN(2*G-L)-.000025*T*SIN(G-L)
1160 Z = Z+.000042*SIN(2*G+L)+.003332*SIN(G+L)+.009998*SIN(G-L)
1170 Z = Z+.397825*SIN(L)
1180 REM
1190 REM
1200 PRINT :PRINT :PRINT :PRINT
1210 PRINT TAB(10)"X";X :PRINT : PRINT TAB(10) "Y";Y : PRINT
1220 PRINT TAB(10) "Z";Z
1230 RETURN
1240 REM NORMALIZATION -- A IN, A OUT.
1250 REM
1260 A = 360*(A*T-INT(A*T))
1270 RETURN
1280 END